package com.navinfo.platform.dataanalysis.dto;

import lombok.Data;
import org.apache.spark.sql.Column;
import org.apache.spark.sql.Row;

import java.io.Serializable;

/**
 * 单车辆基础统计信息表（天）
 *
 * @author machi
 * @create 2018/11/22
 */

@Data
public class VehicleBaseStatisticsDay implements Serializable {

    /**
     * 唯一id
     */
    private Long uid;
    /**
     * 通信号
     */
    private Long tid;
    /**
     * 里程，单位：米
     */
    private Integer mileage;
    /**
     * 油耗，单位：ml
     */
    private Integer fuelConsumption;
    /**
     * 百公里油耗，两位小数。单位： L/100KM
     */
    private Double avgFuelConsumption;
    /**
     * 运行时间，单位：秒
     */
    private Integer workDuration;
    /**
     * 怠速时间，单位：秒
     */
    private Integer idleDuration;
    /**
     * 0<=x<10KM/H驾驶时长(单位:S)
     */
    private Integer speed10Duration;
    /**
     * 10<=x<20KM/H驾驶时长(单位:S)
     */
    private Integer speed20Duration;
    /**
     * 20<=x<30KM/H驾驶时长(单位:S)
     */
    private Integer speed30Duration;
    /**
     * 30<=x<40KM/H驾驶时长(单位:S)
     */
    private Integer speed40Duration;
    /**
     * 40<=x<50KM/H驾驶时长(单位:S)
     */
    private Integer speed50Duration;
    /**
     * 50<=x<60KM/H驾驶时长(单位:S)
     */
    private Integer speed60Duration;
    /**
     * 60<=x<70KM/H驾驶时长(单位:S)
     */
    private Integer speed70Duration;
    /**
     * 70<=x<80KM/H驾驶时长(单位:S)
     */
    private Integer speed80Duration;
    /**
     * 80<=x<90KM/H驾驶时长(单位:S)
     */
    private Integer speed90Duration;
    /**
     * 90<=x<100KM/H驾驶时长(单位:S)
     */
    private Integer speed100Duration;
    /**
     * 100<=x<110KM/H驾驶时长(单位:S)
     */
    private Integer speed110Duration;
    /**
     * 110<=x<120KM/H驾驶时长(单位:S)
     */
    private Integer speed120Duration;
    /**
     * >=120KM/H驾驶时长(单位:S)
     */
    private Integer speedOver120Duration;
    /**
     * 平均速度，里程/时长，单位：KM/H
     */
    private Integer avgSpeed;
    /**
     * 最高速度，单位：KM/H
     */
    private Integer maxSpeed;
    /**
     * 有效最高速度，单位：KM/H
     */
    private Integer maxUsefulSpeed;
    /**
     * 有效最小速度，单位：KM/H
     */
    private Integer minUsefulSpeed;
    /**
     * 运行水温x<50时长，单位：秒
     */
    private Integer workWaterTemp50Duration;
    /**
     * 运行水温50<=x<70时长，单位：秒
     */
    private Integer workWaterTemp70Duration;
    /**
     * 运行水温70<=x<80时长，单位：秒
     */
    private Integer workWaterTemp80Duration;
    /**
     * 运行水温80<=x<85时长，单位：秒
     */
    private Integer workWaterTemp85Duration;
    /**
     * 运行水温85<=x<90时长，单位：秒
     */
    private Integer workWaterTemp90Duration;
    /**
     * 运行水温90<=x<95时长，单位：秒
     */
    private Integer workWaterTemp95Duration;
    /**
     * 运行水温95<=x<100时长，单位：秒
     */
    private Integer workWaterTemp100Duration;
    /**
     * 运行水温100<=x<105时长，单位：秒
     */
    private Integer workWaterTemp105Duration;
    /**
     * 运行水温105<=x<110时长，单位：秒
     */
    private Integer workWaterTemp110Duration;
    /**
     * 运行水温110<=x<115时长，单位：秒
     */
    private Integer workWaterTemp115Duration;
    /**
     * 运行水温115<=x<120时长，单位：秒
     */
    private Integer workWaterTemp120Duration;
    /**
     * 运行水温120<=x<125时长，单位：秒
     */
    private Integer workWaterTemp125Duration;
    /**
     * 运行水温125<=x<130时长，单位：秒
     */
    private Integer workWaterTemp130Duration;
    /**
     * 运行水温130<=x<135时长，单位：秒
     */
    private Integer workWaterTemp135Duration;
    /**
     * 运行水温135<=x<140时长，单位：秒
     */
    private Integer workWaterTemp140Duration;
    /**
     * 运行水温140<=x<145时长，单位：秒
     */
    private Integer workWaterTemp145Duration;
    /**
     * 运行水温145<=x<150时长，单位：秒
     */
    private Integer workWaterTemp150Duration;
    /**
     * 运行水温x>=150时长，单位：秒
     */
    private Integer workWaterTempOver150Duration;
    /**
     * 怠速水温x<50时长，单位：秒
     */
    private Integer idleWaterTemp50Duration;
    /**
     * 怠速水温50<=x<70时长，单位：秒
     */
    private Integer idleWaterTemp70Duration;
    /**
     * 怠速水温70<=x<80时长，单位：秒
     */
    private Integer idleWaterTemp80Duration;
    /**
     * 怠速水温80<=x<85时长，单位：秒
     */
    private Integer idleWaterTemp85Duration;
    /**
     * 怠速水温85<=x<90时长，单位：秒
     */
    private Integer idleWaterTemp90Duration;
    /**
     * 怠速水温90<=x<95时长，单位：秒
     */
    private Integer idleWaterTemp95Duration;
    /**
     * 怠速水温95<=x<100时长，单位：秒
     */
    private Integer idleWaterTemp100Duration;
    /**
     * 怠速水温100<=x<105时长，单位：秒
     */
    private Integer idleWaterTemp105Duration;
    /**
     * 怠速水温105<=x<110时长，单位：秒
     */
    private Integer idleWaterTemp110Duration;
    /**
     * 怠速水温110<=x<115时长，单位：秒
     */
    private Integer idleWaterTemp115Duration;
    /**
     * 怠速水温115<=x<120时长，单位：秒
     */
    private Integer idleWaterTemp120Duration;
    /**
     * 怠速水温120<=x<125时长，单位：秒
     */
    private Integer idleWaterTemp125Duration;
    /**
     * 怠速水温125<=x<130时长，单位：秒
     */
    private Integer idleWaterTemp130Duration;
    /**
     * 怠速水温130<=x<135时长，单位：秒
     */
    private Integer idleWaterTemp135Duration;
    /**
     * 怠速水温135<=x<140时长，单位：秒
     */
    private Integer idleWaterTemp140Duration;
    /**
     * 怠速水温140<=x<145时长，单位：秒
     */
    private Integer idleWaterTemp145Duration;
    /**
     * 怠速水温145<=x<150时长，单位：秒
     */
    private Integer idleWaterTemp150Duration;
    /**
     * 怠速水温x>=150时长，单位：秒
     */
    private Integer idleWaterTempOver150Duration;
    /**
     * 最高运行水温
     */
    private Integer maxWorkWaterTemp;
    /**
     * 最低运行水温
     */
    private Integer minWorkWaterTemp;
    /**
     * 运行水温总和
     */
    private Long workWaterTempSum;
    /**
     * 运行水温总个数
     */
    private Integer workWaterTempCount;
    /**
     * 平均运行水温，水温总和/总个数
     */
    private Integer avgWorkWaterTemp;
    /**
     * 最高怠速水温
     */
    private Integer maxIdleWaterTemp;
    /**
     * 最低怠速水温
     */
    private Integer minIdleWaterTemp;
    /**
     * 怠速水温总和
     */
    private Long idleWaterTempSum;
    /**
     * 怠速水温总个数
     */
    private Integer idleWaterTempCount;
    /**
     * 平均怠速水温，水温总和/总个数
     */
    private Integer avgIdleWaterTemp;
    /**
     * 油门开度=0时长，单位：秒
     */
    private Integer gasOpenPercent0Duration;
    /**
     * 油门开度0<x<=10时长，单位：秒
     */
    private Integer gasOpenPercent10Duration;
    /**
     * 油门开度10<x<=20时长，单位：秒
     */
    private Integer gasOpenPercent20Duration;
    /**
     * 油门开度20<x<=30时长，单位：秒
     */
    private Integer gasOpenPercent30Duration;
    /**
     * 油门开度30<x<=40时长，单位：秒
     */
    private Integer gasOpenPercent40Duration;
    /**
     * 油门开度40<x<=50时长，单位：秒
     */
    private Integer gasOpenPercent50Duration;
    /**
     * 油门开度50<x<=60时长，单位：秒
     */
    private Integer gasOpenPercent60Duration;
    /**
     * 油门开度60<x<=70时长，单位：秒
     */
    private Integer gasOpenPercent70Duration;
    /**
     * 油门开度70<x<=80时长，单位：秒
     */
    private Integer gasOpenPercent80Duration;
    /**
     * 油门开度80<x<=90时长，单位：秒
     */
    private Integer gasOpenPercent90Duration;
    /**
     * 油门开度90<x<100时长，单位：秒
     */
    private Integer gasOpenPercent99Duration;
    /**
     * 油门开度=100时长，单位：秒
     */
    private Integer gasOpenPercent100Duration;
    /**
     * 油门开度总和
     */
    private Long gasOpenPercentSum;
    /**
     * 油门开度总个数
     */
    private Integer gasOpenPercentCount;
    /**
     * 油门开度总和/油门开度个数
     */
    private Integer avgGasOpenPercent;
    /**
     * 扭矩=0时长，单位：秒
     */
    private Integer torque0Duration;
    /**
     * 扭矩0<x<=10时长，单位：秒
     */
    private Integer torque10Duration;
    /**
     * 扭矩10<x<=20时长，单位：秒
     */
    private Integer torque20Duration;
    /**
     * 扭矩20<x<=30时长，单位：秒
     */
    private Integer torque30Duration;
    /**
     * 扭矩30<x<=40时长，单位：秒
     */
    private Integer torque40Duration;
    /**
     * 扭矩40<x<=50时长，单位：秒
     */
    private Integer torque50Duration;
    /**
     * 扭矩50<x<=60时长，单位：秒
     */
    private Integer torque60Duration;
    /**
     * 扭矩60<x<=70时长，单位：秒
     */
    private Integer torque70Duration;
    /**
     * 扭矩70<x<=80时长，单位：秒
     */
    private Integer torque80Duration;
    /**
     * 扭矩80<x<=90时长，单位：秒
     */
    private Integer torque90Duration;
    /**
     * 扭矩90<x<100时长，单位：秒
     */
    private Integer torque99Duration;
    /**
     * 扭矩=100时长，单位：秒
     */
    private Integer torque100Duration;
    /**
     * 最高扭矩
     */
    private Integer maxTorque;
    /**
     * 最低扭矩
     */
    private Integer minTorque;
    /**
     * 扭矩总和
     */
    private Long torqueSum;
    /**
     * 扭矩总个数
     */
    private Integer torqueCount;
    /**
     * 平均负荷，扭矩总和/扭矩个数
     */
    private Integer avgTorque;
    /**
     * 转速区间0<=x<650时长，单位：秒
     */
    private Integer rpm650Duration;
    /**
     * 转速区间650<x<=800时长，单位：秒
     */
    private Integer rpm800Duration;
    /**
     * 转速区间800<x<=1100时长，单位：秒
     */
    private Integer rpm1100Duration;
    /**
     * 转速区间1100<x<=1400时长，单位：秒
     */
    private Integer rpm1400Duration;
    /**
     * 转速区间1400<x<=1700时长，单位：秒
     */
    private Integer rpm1700Duration;
    /**
     * 转速区间1700<x<=2000时长，单位：秒
     */
    private Integer rpm2000Duration;
    /**
     * 转速区间2000<x<=2300时长，单位：秒
     */
    private Integer rpm2300Duration;
    /**
     * 转速区间2300<x<=2600时长，单位：秒
     */
    private Integer rpm2600Duration;
    /**
     * 转速区间x>2600时长，单位：秒
     */
    private Integer rpmOver2600Duration;
    /**
     * 经济转速时长，单位：秒
     */
    private Integer ecoRpmDuration;
    /**
     * 经济转速时长占比，经济转速时长/发动机工作时长
     */
    private Integer ecoRpmPercent;
    /**
     * （不包含怠速）转速总和
     */
    private Long noIdleRpmSum;
    /**
     * （不包含怠速）转速总个数
     */
    private Integer noIdleRpmCount;
    /**
     * （不包含怠速）运行时平均转速，（不包含怠速）转速总和/（不包含怠速）转速总个数
     */
    private Integer noIdleAvgRpm;
    /**
     * 转速总和
     */
    private Long rpmSum;
    /**
     * 转速总个数
     */
    private Integer rpmCount;
    /**
     * 平均转速，转速总和/转速个数
     */
    private Integer avgRpm;
    /**
     * 最高转速
     */
    private Integer maxRpm;
    /**
     * 最低转速
     */
    private Integer minRpm;
    /**
     * 发动机进气温度x<50，单位：秒
     */
    private Integer iat50Duration;
    /**
     * 发动机进气温度50<=x<70，单位：秒
     */
    private Integer iat70Duration;
    /**
     * 发动机进气温度70<=x<80，单位：秒
     */
    private Integer iat80Duration;
    /**
     * 发动机进气温度80<=x<85，单位：秒
     */
    private Integer iat85Duration;
    /**
     * 发动机进气温度85<=x<90，单位：秒
     */
    private Integer iat90Duration;
    /**
     * 发动机进气温度90<=x<95，单位：秒
     */
    private Integer iat95Duration;
    /**
     * 发动机进气温度95<=x<100，单位：秒
     */
    private Integer iat100Duration;
    /**
     * 发动机进气温度100<=x<105，单位：秒
     */
    private Integer iat105Duration;
    /**
     * 发动机进气温度105<=x<110，单位：秒
     */
    private Integer iat110Duration;
    /**
     * 发动机进气温度110<=x<115，单位：秒
     */
    private Integer iat115Duration;
    /**
     * 发动机进气温度115<=x<120，单位：秒
     */
    private Integer iat120Duration;
    /**
     * 发动机进气温度120<=x<125，单位：秒
     */
    private Integer iat125Duration;
    /**
     * 发动机进气温度125<=x<130，单位：秒
     */
    private Integer iat130Duration;
    /**
     * 发动机进气温度130<=x<135，单位：秒
     */
    private Integer iat135Duration;
    /**
     * 发动机进气温度135<=x<140，单位：秒
     */
    private Integer iat140Duration;
    /**
     * 发动机进气温度140<=x<145，单位：秒
     */
    private Integer iat145Duration;
    /**
     * 发动机进气温度145<=x<150，单位：秒
     */
    private Integer iat150Duration;
    /**
     * 发动机进气温度x>=150，单位：秒
     */
    private Integer iatOver150Duration;
    /**
     * 进气温度总和
     */
    private Long iatSum;
    /**
     * 进气温度总个数
     */
    private Integer iatCount;
    /**
     * 平均进气温度，进气温度总和/进气温度总个数
     */
    private Integer avgIat;
    /**
     * 最高进气温度
     */
    private Integer maxIat;
    /**
     * 最低进气温度
     */
    private Integer minIat;
    /**
     * 发动机进气压力x<50，单位：秒
     */
    private Integer ip50Duration;
    /**
     * 发动机进气压力50<=x<60，单位：秒
     */
    private Integer ip60Duration;
    /**
     * 发动机进气压力60<=x<70，单位：秒
     */
    private Integer ip70Duration;
    /**
     * 发动机进气压力70<=x<80，单位：秒
     */
    private Integer ip80Duration;
    /**
     * 发动机进气压力80<=x<90，单位：秒
     */
    private Integer ip90Duration;
    /**
     * 发动机进气压力90<=x<100，单位：秒
     */
    private Integer ip100Duration;
    /**
     * 发动机进气压力100<=x<110，单位：秒
     */
    private Integer ip110Duration;
    /**
     * 发动机进气压力110<=x<120，单位：秒
     */
    private Integer ip120Duration;
    /**
     * 发动机进气压力120<=x<130，单位：秒
     */
    private Integer ip130Duration;
    /**
     * 发动机进气压力130<=x<140，单位：秒
     */
    private Integer ip140Duration;
    /**
     * 发动机进气压力140<=x<150，单位：秒
     */
    private Integer ip150Duration;
    /**
     * 发动机进气压力x>=150，单位：秒
     */
    private Integer ipOver150Duration;
    /**
     * 进气压力总和
     */
    private Long ipSum;
    /**
     * 进气压力总个数
     */
    private Integer ipCount;
    /**
     * 平均进气压力，进气压力总和/进气压力总个数
     */
    private Integer avgIp;
    /**
     * 最高进气压力
     */
    private Integer maxIp;
    /**
     * 最低进气压力
     */
    private Integer minIp;
    /**
     * 经过城市，逗号分隔
     */
    private String crossCities;
    /**
     * 0点到1点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock0 ;
    /**
     * 1点到2点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock1 ;
    /**
     * 2点到3点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock2 ;
    /**
     * 3点到4点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock3 ;
    /**
     * 4点到5点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock4 ;
    /**
     * 5点到6点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock5 ;
    /**
     * 6点到7点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock6 ;
    /**
     * 7点到8点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock7 ;
    /**
     * 8点到9点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock8 ;
    /**
     * 9点到10点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock9 ;
    /**
     * 10点到11点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock10;
    /**
     * 11点到12点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock11;
    /**
     * 12点到13点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock12;
    /**
     * 13点到14点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock13;
    /**
     * 14点到15点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock14;
    /**
     * 15点到16点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock15;
    /**
     * 16点到17点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock16;
    /**
     * 17点到18点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock17;
    /**
     * 18点到19点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock18;
    /**
     * 19点到20点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock19;
    /**
     * 20点到21点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock20;
    /**
     * 21点到22点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock21;
    /**
     * 22点到23点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock22;
    /**
     * 23点到0点是否运行
     * 0:未运行，1:运行
     */
    private Integer clock23;
    /**
     * 日期yyyymmdd
     */
    private String day;

    public static Column[] columns() {
        Column uid = new Column("uid").as("uid");
        Column tid = new Column("tid").as("tid");
        Column mileage = new Column("mileage").as("mileage");
        Column fuelConsumption = new Column("fuelConsumption").as("fuel_consumption");
        Column avgFuelConsumption = new Column("avgFuelConsumption").as("avg_fuel_consumption");
        Column workDuration = new Column("workDuration").as("work_duration");
        Column idleDuration = new Column("idleDuration").as("idle_duration");
        Column speed10Duration = new Column("speed10Duration").as("speed_10_duration");
        Column speed20Duration = new Column("speed20Duration").as("speed_20_duration");
        Column speed30Duration = new Column("speed30Duration").as("speed_30_duration");
        Column speed40Duration = new Column("speed40Duration").as("speed_40_duration");
        Column speed50Duration = new Column("speed50Duration").as("speed_50_duration");
        Column speed60Duration = new Column("speed60Duration").as("speed_60_duration");
        Column speed70Duration = new Column("speed70Duration").as("speed_70_duration");
        Column speed80Duration = new Column("speed80Duration").as("speed_80_duration");
        Column speed90Duration = new Column("speed90Duration").as("speed_90_duration");
        Column speed100Duration = new Column("speed100Duration").as("speed_100_duration");
        Column speed110Duration = new Column("speed110Duration").as("speed_110_duration");
        Column speed120Duration = new Column("speed120Duration").as("speed_120_duration");
        Column speedOver120Duration = new Column("speedOver120Duration").as("speed_over_120_duration");
        Column avgSpeed = new Column("avgSpeed").as("avg_speed");
        Column maxSpeed = new Column("maxSpeed").as("max_speed");
        Column maxUsefulSpeed = new Column("maxUsefulSpeed").as("max_useful_speed");
        Column minUsefulSpeed = new Column("minUsefulSpeed").as("min_useful_speed");
        Column workWaterTemp50Duration = new Column("workWaterTemp50Duration").as("work_water_temp_50_duration");
        Column workWaterTemp70Duration = new Column("workWaterTemp70Duration").as("work_water_temp_70_duration");
        Column workWaterTemp80Duration = new Column("workWaterTemp80Duration").as("work_water_temp_80_duration");
        Column workWaterTemp85Duration = new Column("workWaterTemp85Duration").as("work_water_temp_85_duration");
        Column workWaterTemp90Duration = new Column("workWaterTemp90Duration").as("work_water_temp_90_duration");
        Column workWaterTemp95Duration = new Column("workWaterTemp95Duration").as("work_water_temp_95_duration");
        Column workWaterTemp100Duration = new Column("workWaterTemp100Duration").as("work_water_temp_100_duration");
        Column workWaterTemp105Duration = new Column("workWaterTemp105Duration").as("work_water_temp_105_duration");
        Column workWaterTemp110Duration = new Column("workWaterTemp110Duration").as("work_water_temp_110_duration");
        Column workWaterTemp115Duration = new Column("workWaterTemp115Duration").as("work_water_temp_115_duration");
        Column workWaterTemp120Duration = new Column("workWaterTemp120Duration").as("work_water_temp_120_duration");
        Column workWaterTemp125Duration = new Column("workWaterTemp125Duration").as("work_water_temp_125_duration");
        Column workWaterTemp130Duration = new Column("workWaterTemp130Duration").as("work_water_temp_130_duration");
        Column workWaterTemp135Duration = new Column("workWaterTemp135Duration").as("work_water_temp_135_duration");
        Column workWaterTemp140Duration = new Column("workWaterTemp140Duration").as("work_water_temp_140_duration");
        Column workWaterTemp145Duration = new Column("workWaterTemp145Duration").as("work_water_temp_145_duration");
        Column workWaterTemp150Duration = new Column("workWaterTemp150Duration").as("work_water_temp_150_duration");
        Column workWaterTempOver150Duration = new Column("workWaterTempOver150Duration").as(
                "work_water_temp_over_150_duration");
        Column idleWaterTemp50Duration = new Column("idleWaterTemp50Duration").as("idle_water_temp_50_duration");
        Column idleWaterTemp70Duration = new Column("idleWaterTemp70Duration").as("idle_water_temp_70_duration");
        Column idleWaterTemp80Duration = new Column("idleWaterTemp80Duration").as("idle_water_temp_80_duration");
        Column idleWaterTemp85Duration = new Column("idleWaterTemp85Duration").as("idle_water_temp_85_duration");
        Column idleWaterTemp90Duration = new Column("idleWaterTemp90Duration").as("idle_water_temp_90_duration");
        Column idleWaterTemp95Duration = new Column("idleWaterTemp95Duration").as("idle_water_temp_95_duration");
        Column idleWaterTemp100Duration = new Column("idleWaterTemp100Duration").as("idle_water_temp_100_duration");
        Column idleWaterTemp105Duration = new Column("idleWaterTemp105Duration").as("idle_water_temp_105_duration");
        Column idleWaterTemp110Duration = new Column("idleWaterTemp110Duration").as("idle_water_temp_110_duration");
        Column idleWaterTemp115Duration = new Column("idleWaterTemp115Duration").as("idle_water_temp_115_duration");
        Column idleWaterTemp120Duration = new Column("idleWaterTemp120Duration").as("idle_water_temp_120_duration");
        Column idleWaterTemp125Duration = new Column("idleWaterTemp125Duration").as("idle_water_temp_125_duration");
        Column idleWaterTemp130Duration = new Column("idleWaterTemp130Duration").as("idle_water_temp_130_duration");
        Column idleWaterTemp135Duration = new Column("idleWaterTemp135Duration").as("idle_water_temp_135_duration");
        Column idleWaterTemp140Duration = new Column("idleWaterTemp140Duration").as("idle_water_temp_140_duration");
        Column idleWaterTemp145Duration = new Column("idleWaterTemp145Duration").as("idle_water_temp_145_duration");
        Column idleWaterTemp150Duration = new Column("idleWaterTemp150Duration").as("idle_water_temp_150_duration");
        Column idleWaterTempOver150Duration = new Column("idleWaterTempOver150Duration").as(
                "idle_water_temp_over_150_duration");
        Column maxWorkWaterTemp = new Column("maxWorkWaterTemp").as("max_work_water_temp");
        Column minWorkWaterTemp = new Column("minWorkWaterTemp").as("min_work_water_temp");
        Column workWaterTempSum = new Column("workWaterTempSum").as("work_water_temp_sum");
        Column workWaterTempCount = new Column("workWaterTempCount").as("work_water_temp_count");
        Column avgWorkWaterTemp = new Column("avgWorkWaterTemp").as("avg_work_water_temp");
        Column maxIdleWaterTemp = new Column("maxIdleWaterTemp").as("max_idle_water_temp");
        Column minIdleWaterTemp = new Column("minIdleWaterTemp").as("min_idle_water_temp");
        Column idleWaterTempSum = new Column("idleWaterTempSum").as("idle_water_temp_sum");
        Column idleWaterTempCount = new Column("idleWaterTempCount").as("idle_water_temp_count");
        Column avgIdleWaterTemp = new Column("avgIdleWaterTemp").as("avg_idle_water_temp");
        Column gasOpenPercent0Duration = new Column("gasOpenPercent0Duration").as("gas_open_percent_0_duration");
        Column gasOpenPercent10Duration = new Column("gasOpenPercent10Duration").as("gas_open_percent_10_duration");
        Column gasOpenPercent20Duration = new Column("gasOpenPercent20Duration").as("gas_open_percent_20_duration");
        Column gasOpenPercent30Duration = new Column("gasOpenPercent30Duration").as("gas_open_percent_30_duration");
        Column gasOpenPercent40Duration = new Column("gasOpenPercent40Duration").as("gas_open_percent_40_duration");
        Column gasOpenPercent50Duration = new Column("gasOpenPercent50Duration").as("gas_open_percent_50_duration");
        Column gasOpenPercent60Duration = new Column("gasOpenPercent60Duration").as("gas_open_percent_60_duration");
        Column gasOpenPercent70Duration = new Column("gasOpenPercent70Duration").as("gas_open_percent_70_duration");
        Column gasOpenPercent80Duration = new Column("gasOpenPercent80Duration").as("gas_open_percent_80_duration");
        Column gasOpenPercent90Duration = new Column("gasOpenPercent90Duration").as("gas_open_percent_90_duration");
        Column gasOpenPercent99Duration = new Column("gasOpenPercent99Duration").as("gas_open_percent_99_duration");
        Column gasOpenPercent100Duration = new Column("gasOpenPercent100Duration").as("gas_open_percent_100_duration");
        Column gasOpenPercentSum = new Column("gasOpenPercentSum").as("gas_open_percent_sum");
        Column gasOpenPercentCount = new Column("gasOpenPercentCount").as("gas_open_percent_count");
        Column avgGasOpenPercent = new Column("avgGasOpenPercent").as("avg_gas_open_percent");
        Column torque0Duration = new Column("torque0Duration").as("torque_0_duration");
        Column torque10Duration = new Column("torque10Duration").as("torque_10_duration");
        Column torque20Duration = new Column("torque20Duration").as("torque_20_duration");
        Column torque30Duration = new Column("torque30Duration").as("torque_30_duration");
        Column torque40Duration = new Column("torque40Duration").as("torque_40_duration");
        Column torque50Duration = new Column("torque50Duration").as("torque_50_duration");
        Column torque60Duration = new Column("torque60Duration").as("torque_60_duration");
        Column torque70Duration = new Column("torque70Duration").as("torque_70_duration");
        Column torque80Duration = new Column("torque80Duration").as("torque_80_duration");
        Column torque90Duration = new Column("torque90Duration").as("torque_90_duration");
        Column torque99Duration = new Column("torque99Duration").as("torque_99_duration");
        Column torque100Duration = new Column("torque100Duration").as("torque_100_duration");
        Column maxTorque = new Column("maxTorque").as("max_torque");
        Column minTorque = new Column("minTorque").as("min_torque");
        Column torqueSum = new Column("torqueSum").as("torque_sum");
        Column torqueCount = new Column("torqueCount").as("torque_count");
        Column avgTorque = new Column("avgTorque").as("avg_torque");
        Column rpm650Duration = new Column("rpm650Duration").as("rpm_650_duration");
        Column rpm800Duration = new Column("rpm800Duration").as("rpm_800_duration");
        Column rpm1100Duration = new Column("rpm1100Duration").as("rpm_1100_duration");
        Column rpm1400Duration = new Column("rpm1400Duration").as("rpm_1400_duration");
        Column rpm1700Duration = new Column("rpm1700Duration").as("rpm_1700_duration");
        Column rpm2000Duration = new Column("rpm2000Duration").as("rpm_2000_duration");
        Column rpm2300Duration = new Column("rpm2300Duration").as("rpm_2300_duration");
        Column rpm2600Duration = new Column("rpm2600Duration").as("rpm_2600_duration");
        Column rpmOver2600Duration = new Column("rpmOver2600Duration").as("rpm_over_2600_duration");
        Column ecoRpmDuration = new Column("ecoRpmDuration").as("eco_rpm_duration");
        Column ecoRpmPercent = new Column("ecoRpmPercent").as("eco_rpm_percent");
        Column noIdleRpmSum = new Column("noIdleRpmSum").as("no_idle_rpm_sum");
        Column noIdleRpmCount = new Column("noIdleRpmCount").as("no_idle_rpm_count");
        Column noIdleAvgRpm = new Column("noIdleAvgRpm").as("no_idle_avg_rpm");
        Column rpmSum = new Column("rpmSum").as("rpm_sum");
        Column rpmCount = new Column("rpmCount").as("rpm_count");
        Column avgRpm = new Column("avgRpm").as("avg_rpm");
        Column maxRpm = new Column("maxRpm").as("max_rpm");
        Column minRpm = new Column("minRpm").as("min_rpm");
        Column iat50Duration = new Column("iat50Duration").as("iat_50_duration");
        Column iat70Duration = new Column("iat70Duration").as("iat_70_duration");
        Column iat80Duration = new Column("iat80Duration").as("iat_80_duration");
        Column iat85Duration = new Column("iat85Duration").as("iat_85_duration");
        Column iat90Duration = new Column("iat90Duration").as("iat_90_duration");
        Column iat95Duration = new Column("iat95Duration").as("iat_95_duration");
        Column iat100Duration = new Column("iat100Duration").as("iat_100_duration");
        Column iat105Duration = new Column("iat105Duration").as("iat_105_duration");
        Column iat110Duration = new Column("iat110Duration").as("iat_110_duration");
        Column iat115Duration = new Column("iat115Duration").as("iat_115_duration");
        Column iat120Duration = new Column("iat120Duration").as("iat_120_duration");
        Column iat125Duration = new Column("iat125Duration").as("iat_125_duration");
        Column iat130Duration = new Column("iat130Duration").as("iat_130_duration");
        Column iat135Duration = new Column("iat135Duration").as("iat_135_duration");
        Column iat140Duration = new Column("iat140Duration").as("iat_140_duration");
        Column iat145Duration = new Column("iat145Duration").as("iat_145_duration");
        Column iat150Duration = new Column("iat150Duration").as("iat_150_duration");
        Column iatOver150Duration = new Column("iatOver150Duration").as("iat_over_150_duration");
        Column iatSum = new Column("iatSum").as("iat_sum");
        Column iatCount = new Column("iatCount").as("iat_count");
        Column avgIat = new Column("avgIat").as("avg_iat");
        Column maxIat = new Column("maxIat").as("max_iat");
        Column minIat = new Column("minIat").as("min_iat");
        Column ip50Duration = new Column("ip50Duration").as("ip_50_duration");
        Column ip60Duration = new Column("ip60Duration").as("ip_60_duration");
        Column ip70Duration = new Column("ip70Duration").as("ip_70_duration");
        Column ip80Duration = new Column("ip80Duration").as("ip_80_duration");
        Column ip90Duration = new Column("ip90Duration").as("ip_90_duration");
        Column ip100Duration = new Column("ip100Duration").as("ip_100_duration");
        Column ip110Duration = new Column("ip110Duration").as("ip_110_duration");
        Column ip120Duration = new Column("ip120Duration").as("ip_120_duration");
        Column ip130Duration = new Column("ip130Duration").as("ip_130_duration");
        Column ip140Duration = new Column("ip140Duration").as("ip_140_duration");
        Column ip150Duration = new Column("ip150Duration").as("ip_150_duration");
        Column ipOver150Duration = new Column("ipOver150Duration").as("ip_over_150_duration");
        Column ipSum = new Column("ipSum").as("ip_sum");
        Column ipCount = new Column("ipCount").as("ip_count");
        Column avgIp = new Column("avgIp").as("avg_ip");
        Column maxIp = new Column("maxIp").as("max_ip");
        Column minIp = new Column("minIp").as("min_ip");
        Column crossCities = new Column("crossCities").as("cross_cities");
        Column clock0 = new Column("clock0").as("clock_0");
        Column clock1 = new Column("clock1").as("clock_1");
        Column clock2 = new Column("clock2").as("clock_2");
        Column clock3 = new Column("clock3").as("clock_3");
        Column clock4 = new Column("clock4").as("clock_4");
        Column clock5 = new Column("clock5").as("clock_5");
        Column clock6 = new Column("clock6").as("clock_6");
        Column clock7 = new Column("clock7").as("clock_7");
        Column clock8 = new Column("clock8").as("clock_8");
        Column clock9 = new Column("clock9").as("clock_9");
        Column clock10 = new Column("clock10").as("clock_10");
        Column clock11 = new Column("clock11").as("clock_11");
        Column clock12 = new Column("clock12").as("clock_12");
        Column clock13 = new Column("clock13").as("clock_13");
        Column clock14 = new Column("clock14").as("clock_14");
        Column clock15 = new Column("clock15").as("clock_15");
        Column clock16 = new Column("clock16").as("clock_16");
        Column clock17 = new Column("clock17").as("clock_17");
        Column clock18 = new Column("clock18").as("clock_18");
        Column clock19 = new Column("clock19").as("clock_19");
        Column clock20 = new Column("clock20").as("clock_20");
        Column clock21 = new Column("clock21").as("clock_21");
        Column clock22 = new Column("clock22").as("clock_22");
        Column clock23 = new Column("clock23").as("clock_23");
        Column day = new Column("day").as("day");
        return new Column[]{uid,
                tid,
                mileage,
                fuelConsumption,
                avgFuelConsumption,
                workDuration,
                idleDuration,
                speed10Duration,
                speed20Duration,
                speed30Duration,
                speed40Duration,
                speed50Duration,
                speed60Duration,
                speed70Duration,
                speed80Duration,
                speed90Duration,
                speed100Duration,
                speed110Duration,
                speed120Duration,
                speedOver120Duration,
                avgSpeed,
                maxSpeed,
                maxUsefulSpeed,
                minUsefulSpeed,
                workWaterTemp50Duration,
                workWaterTemp70Duration,
                workWaterTemp80Duration,
                workWaterTemp85Duration,
                workWaterTemp90Duration,
                workWaterTemp95Duration,
                workWaterTemp100Duration,
                workWaterTemp105Duration,
                workWaterTemp110Duration,
                workWaterTemp115Duration,
                workWaterTemp120Duration,
                workWaterTemp125Duration,
                workWaterTemp130Duration,
                workWaterTemp135Duration,
                workWaterTemp140Duration,
                workWaterTemp145Duration,
                workWaterTemp150Duration,
                workWaterTempOver150Duration,
                idleWaterTemp50Duration,
                idleWaterTemp70Duration,
                idleWaterTemp80Duration,
                idleWaterTemp85Duration,
                idleWaterTemp90Duration,
                idleWaterTemp95Duration,
                idleWaterTemp100Duration,
                idleWaterTemp105Duration,
                idleWaterTemp110Duration,
                idleWaterTemp115Duration,
                idleWaterTemp120Duration,
                idleWaterTemp125Duration,
                idleWaterTemp130Duration,
                idleWaterTemp135Duration,
                idleWaterTemp140Duration,
                idleWaterTemp145Duration,
                idleWaterTemp150Duration,
                idleWaterTempOver150Duration,
                maxWorkWaterTemp,
                minWorkWaterTemp,
                workWaterTempSum,
                workWaterTempCount,
                avgWorkWaterTemp,
                maxIdleWaterTemp,
                minIdleWaterTemp,
                idleWaterTempSum,
                idleWaterTempCount,
                avgIdleWaterTemp,
                gasOpenPercent0Duration,
                gasOpenPercent10Duration,
                gasOpenPercent20Duration,
                gasOpenPercent30Duration,
                gasOpenPercent40Duration,
                gasOpenPercent50Duration,
                gasOpenPercent60Duration,
                gasOpenPercent70Duration,
                gasOpenPercent80Duration,
                gasOpenPercent90Duration,
                gasOpenPercent99Duration,
                gasOpenPercent100Duration,
                gasOpenPercentSum,
                gasOpenPercentCount,
                avgGasOpenPercent,
                torque0Duration,
                torque10Duration,
                torque20Duration,
                torque30Duration,
                torque40Duration,
                torque50Duration,
                torque60Duration,
                torque70Duration,
                torque80Duration,
                torque90Duration,
                torque99Duration,
                torque100Duration,
                maxTorque,
                minTorque,
                torqueSum,
                torqueCount,
                avgTorque,
                rpm650Duration,
                rpm800Duration,
                rpm1100Duration,
                rpm1400Duration,
                rpm1700Duration,
                rpm2000Duration,
                rpm2300Duration,
                rpm2600Duration,
                rpmOver2600Duration,
                ecoRpmDuration,
                ecoRpmPercent,
                noIdleRpmSum,
                noIdleRpmCount,
                noIdleAvgRpm,
                rpmSum,
                rpmCount,
                avgRpm,
                maxRpm,
                minRpm,
                iat50Duration,
                iat70Duration,
                iat80Duration,
                iat85Duration,
                iat90Duration,
                iat95Duration,
                iat100Duration,
                iat105Duration,
                iat110Duration,
                iat115Duration,
                iat120Duration,
                iat125Duration,
                iat130Duration,
                iat135Duration,
                iat140Duration,
                iat145Duration,
                iat150Duration,
                iatOver150Duration,
                iatSum,
                iatCount,
                avgIat,
                maxIat,
                minIat,
                ip50Duration,
                ip60Duration,
                ip70Duration,
                ip80Duration,
                ip90Duration,
                ip100Duration,
                ip110Duration,
                ip120Duration,
                ip130Duration,
                ip140Duration,
                ip150Duration,
                ipOver150Duration,
                ipSum,
                ipCount,
                avgIp,
                maxIp,
                minIp,
                crossCities,
                clock0,
                clock1,
                clock2,
                clock3,
                clock4,
                clock5,
                clock6,
                clock7,
                clock8,
                clock9,
                clock10,
                clock11,
                clock12,
                clock13,
                clock14,
                clock15,
                clock16,
                clock17,
                clock18,
                clock19,
                clock20,
                clock21,
                clock22,
                clock23,
                day};
    }

    public static Column[] columnsNotIncludeClock() {
        Column uid = new Column("uid").as("uid");
        Column tid = new Column("tid").as("tid");
        Column mileage = new Column("mileage").as("mileage");
        Column fuelConsumption = new Column("fuelConsumption").as("fuel_consumption");
        Column avgFuelConsumption = new Column("avgFuelConsumption").as("avg_fuel_consumption");
        Column workDuration = new Column("workDuration").as("work_duration");
        Column idleDuration = new Column("idleDuration").as("idle_duration");
        Column speed10Duration = new Column("speed10Duration").as("speed_10_duration");
        Column speed20Duration = new Column("speed20Duration").as("speed_20_duration");
        Column speed30Duration = new Column("speed30Duration").as("speed_30_duration");
        Column speed40Duration = new Column("speed40Duration").as("speed_40_duration");
        Column speed50Duration = new Column("speed50Duration").as("speed_50_duration");
        Column speed60Duration = new Column("speed60Duration").as("speed_60_duration");
        Column speed70Duration = new Column("speed70Duration").as("speed_70_duration");
        Column speed80Duration = new Column("speed80Duration").as("speed_80_duration");
        Column speed90Duration = new Column("speed90Duration").as("speed_90_duration");
        Column speed100Duration = new Column("speed100Duration").as("speed_100_duration");
        Column speed110Duration = new Column("speed110Duration").as("speed_110_duration");
        Column speed120Duration = new Column("speed120Duration").as("speed_120_duration");
        Column speedOver120Duration = new Column("speedOver120Duration").as("speed_over_120_duration");
        Column avgSpeed = new Column("avgSpeed").as("avg_speed");
        Column maxSpeed = new Column("maxSpeed").as("max_speed");
        Column maxUsefulSpeed = new Column("maxUsefulSpeed").as("max_useful_speed");
        Column minUsefulSpeed = new Column("minUsefulSpeed").as("min_useful_speed");
        Column workWaterTemp50Duration = new Column("workWaterTemp50Duration").as("work_water_temp_50_duration");
        Column workWaterTemp70Duration = new Column("workWaterTemp70Duration").as("work_water_temp_70_duration");
        Column workWaterTemp80Duration = new Column("workWaterTemp80Duration").as("work_water_temp_80_duration");
        Column workWaterTemp85Duration = new Column("workWaterTemp85Duration").as("work_water_temp_85_duration");
        Column workWaterTemp90Duration = new Column("workWaterTemp90Duration").as("work_water_temp_90_duration");
        Column workWaterTemp95Duration = new Column("workWaterTemp95Duration").as("work_water_temp_95_duration");
        Column workWaterTemp100Duration = new Column("workWaterTemp100Duration").as("work_water_temp_100_duration");
        Column workWaterTemp105Duration = new Column("workWaterTemp105Duration").as("work_water_temp_105_duration");
        Column workWaterTemp110Duration = new Column("workWaterTemp110Duration").as("work_water_temp_110_duration");
        Column workWaterTemp115Duration = new Column("workWaterTemp115Duration").as("work_water_temp_115_duration");
        Column workWaterTemp120Duration = new Column("workWaterTemp120Duration").as("work_water_temp_120_duration");
        Column workWaterTemp125Duration = new Column("workWaterTemp125Duration").as("work_water_temp_125_duration");
        Column workWaterTemp130Duration = new Column("workWaterTemp130Duration").as("work_water_temp_130_duration");
        Column workWaterTemp135Duration = new Column("workWaterTemp135Duration").as("work_water_temp_135_duration");
        Column workWaterTemp140Duration = new Column("workWaterTemp140Duration").as("work_water_temp_140_duration");
        Column workWaterTemp145Duration = new Column("workWaterTemp145Duration").as("work_water_temp_145_duration");
        Column workWaterTemp150Duration = new Column("workWaterTemp150Duration").as("work_water_temp_150_duration");
        Column workWaterTempOver150Duration = new Column("workWaterTempOver150Duration").as(
                "work_water_temp_over_150_duration");
        Column idleWaterTemp50Duration = new Column("idleWaterTemp50Duration").as("idle_water_temp_50_duration");
        Column idleWaterTemp70Duration = new Column("idleWaterTemp70Duration").as("idle_water_temp_70_duration");
        Column idleWaterTemp80Duration = new Column("idleWaterTemp80Duration").as("idle_water_temp_80_duration");
        Column idleWaterTemp85Duration = new Column("idleWaterTemp85Duration").as("idle_water_temp_85_duration");
        Column idleWaterTemp90Duration = new Column("idleWaterTemp90Duration").as("idle_water_temp_90_duration");
        Column idleWaterTemp95Duration = new Column("idleWaterTemp95Duration").as("idle_water_temp_95_duration");
        Column idleWaterTemp100Duration = new Column("idleWaterTemp100Duration").as("idle_water_temp_100_duration");
        Column idleWaterTemp105Duration = new Column("idleWaterTemp105Duration").as("idle_water_temp_105_duration");
        Column idleWaterTemp110Duration = new Column("idleWaterTemp110Duration").as("idle_water_temp_110_duration");
        Column idleWaterTemp115Duration = new Column("idleWaterTemp115Duration").as("idle_water_temp_115_duration");
        Column idleWaterTemp120Duration = new Column("idleWaterTemp120Duration").as("idle_water_temp_120_duration");
        Column idleWaterTemp125Duration = new Column("idleWaterTemp125Duration").as("idle_water_temp_125_duration");
        Column idleWaterTemp130Duration = new Column("idleWaterTemp130Duration").as("idle_water_temp_130_duration");
        Column idleWaterTemp135Duration = new Column("idleWaterTemp135Duration").as("idle_water_temp_135_duration");
        Column idleWaterTemp140Duration = new Column("idleWaterTemp140Duration").as("idle_water_temp_140_duration");
        Column idleWaterTemp145Duration = new Column("idleWaterTemp145Duration").as("idle_water_temp_145_duration");
        Column idleWaterTemp150Duration = new Column("idleWaterTemp150Duration").as("idle_water_temp_150_duration");
        Column idleWaterTempOver150Duration = new Column("idleWaterTempOver150Duration").as(
                "idle_water_temp_over_150_duration");
        Column maxWorkWaterTemp = new Column("maxWorkWaterTemp").as("max_work_water_temp");
        Column minWorkWaterTemp = new Column("minWorkWaterTemp").as("min_work_water_temp");
        Column workWaterTempSum = new Column("workWaterTempSum").as("work_water_temp_sum");
        Column workWaterTempCount = new Column("workWaterTempCount").as("work_water_temp_count");
        Column avgWorkWaterTemp = new Column("avgWorkWaterTemp").as("avg_work_water_temp");
        Column maxIdleWaterTemp = new Column("maxIdleWaterTemp").as("max_idle_water_temp");
        Column minIdleWaterTemp = new Column("minIdleWaterTemp").as("min_idle_water_temp");
        Column idleWaterTempSum = new Column("idleWaterTempSum").as("idle_water_temp_sum");
        Column idleWaterTempCount = new Column("idleWaterTempCount").as("idle_water_temp_count");
        Column avgIdleWaterTemp = new Column("avgIdleWaterTemp").as("avg_idle_water_temp");
        Column gasOpenPercent0Duration = new Column("gasOpenPercent0Duration").as("gas_open_percent_0_duration");
        Column gasOpenPercent10Duration = new Column("gasOpenPercent10Duration").as("gas_open_percent_10_duration");
        Column gasOpenPercent20Duration = new Column("gasOpenPercent20Duration").as("gas_open_percent_20_duration");
        Column gasOpenPercent30Duration = new Column("gasOpenPercent30Duration").as("gas_open_percent_30_duration");
        Column gasOpenPercent40Duration = new Column("gasOpenPercent40Duration").as("gas_open_percent_40_duration");
        Column gasOpenPercent50Duration = new Column("gasOpenPercent50Duration").as("gas_open_percent_50_duration");
        Column gasOpenPercent60Duration = new Column("gasOpenPercent60Duration").as("gas_open_percent_60_duration");
        Column gasOpenPercent70Duration = new Column("gasOpenPercent70Duration").as("gas_open_percent_70_duration");
        Column gasOpenPercent80Duration = new Column("gasOpenPercent80Duration").as("gas_open_percent_80_duration");
        Column gasOpenPercent90Duration = new Column("gasOpenPercent90Duration").as("gas_open_percent_90_duration");
        Column gasOpenPercent99Duration = new Column("gasOpenPercent99Duration").as("gas_open_percent_99_duration");
        Column gasOpenPercent100Duration = new Column("gasOpenPercent100Duration").as("gas_open_percent_100_duration");
        Column gasOpenPercentSum = new Column("gasOpenPercentSum").as("gas_open_percent_sum");
        Column gasOpenPercentCount = new Column("gasOpenPercentCount").as("gas_open_percent_count");
        Column avgGasOpenPercent = new Column("avgGasOpenPercent").as("avg_gas_open_percent");
        Column torque0Duration = new Column("torque0Duration").as("torque_0_duration");
        Column torque10Duration = new Column("torque10Duration").as("torque_10_duration");
        Column torque20Duration = new Column("torque20Duration").as("torque_20_duration");
        Column torque30Duration = new Column("torque30Duration").as("torque_30_duration");
        Column torque40Duration = new Column("torque40Duration").as("torque_40_duration");
        Column torque50Duration = new Column("torque50Duration").as("torque_50_duration");
        Column torque60Duration = new Column("torque60Duration").as("torque_60_duration");
        Column torque70Duration = new Column("torque70Duration").as("torque_70_duration");
        Column torque80Duration = new Column("torque80Duration").as("torque_80_duration");
        Column torque90Duration = new Column("torque90Duration").as("torque_90_duration");
        Column torque99Duration = new Column("torque99Duration").as("torque_99_duration");
        Column torque100Duration = new Column("torque100Duration").as("torque_100_duration");
        Column maxTorque = new Column("maxTorque").as("max_torque");
        Column minTorque = new Column("minTorque").as("min_torque");
        Column torqueSum = new Column("torqueSum").as("torque_sum");
        Column torqueCount = new Column("torqueCount").as("torque_count");
        Column avgTorque = new Column("avgTorque").as("avg_torque");
        Column rpm650Duration = new Column("rpm650Duration").as("rpm_650_duration");
        Column rpm800Duration = new Column("rpm800Duration").as("rpm_800_duration");
        Column rpm1100Duration = new Column("rpm1100Duration").as("rpm_1100_duration");
        Column rpm1400Duration = new Column("rpm1400Duration").as("rpm_1400_duration");
        Column rpm1700Duration = new Column("rpm1700Duration").as("rpm_1700_duration");
        Column rpm2000Duration = new Column("rpm2000Duration").as("rpm_2000_duration");
        Column rpm2300Duration = new Column("rpm2300Duration").as("rpm_2300_duration");
        Column rpm2600Duration = new Column("rpm2600Duration").as("rpm_2600_duration");
        Column rpmOver2600Duration = new Column("rpmOver2600Duration").as("rpm_over_2600_duration");
        Column ecoRpmDuration = new Column("ecoRpmDuration").as("eco_rpm_duration");
        Column ecoRpmPercent = new Column("ecoRpmPercent").as("eco_rpm_percent");
        Column noIdleRpmSum = new Column("noIdleRpmSum").as("no_idle_rpm_sum");
        Column noIdleRpmCount = new Column("noIdleRpmCount").as("no_idle_rpm_count");
        Column noIdleAvgRpm = new Column("noIdleAvgRpm").as("no_idle_avg_rpm");
        Column rpmSum = new Column("rpmSum").as("rpm_sum");
        Column rpmCount = new Column("rpmCount").as("rpm_count");
        Column avgRpm = new Column("avgRpm").as("avg_rpm");
        Column maxRpm = new Column("maxRpm").as("max_rpm");
        Column minRpm = new Column("minRpm").as("min_rpm");
        Column iat50Duration = new Column("iat50Duration").as("iat_50_duration");
        Column iat70Duration = new Column("iat70Duration").as("iat_70_duration");
        Column iat80Duration = new Column("iat80Duration").as("iat_80_duration");
        Column iat85Duration = new Column("iat85Duration").as("iat_85_duration");
        Column iat90Duration = new Column("iat90Duration").as("iat_90_duration");
        Column iat95Duration = new Column("iat95Duration").as("iat_95_duration");
        Column iat100Duration = new Column("iat100Duration").as("iat_100_duration");
        Column iat105Duration = new Column("iat105Duration").as("iat_105_duration");
        Column iat110Duration = new Column("iat110Duration").as("iat_110_duration");
        Column iat115Duration = new Column("iat115Duration").as("iat_115_duration");
        Column iat120Duration = new Column("iat120Duration").as("iat_120_duration");
        Column iat125Duration = new Column("iat125Duration").as("iat_125_duration");
        Column iat130Duration = new Column("iat130Duration").as("iat_130_duration");
        Column iat135Duration = new Column("iat135Duration").as("iat_135_duration");
        Column iat140Duration = new Column("iat140Duration").as("iat_140_duration");
        Column iat145Duration = new Column("iat145Duration").as("iat_145_duration");
        Column iat150Duration = new Column("iat150Duration").as("iat_150_duration");
        Column iatOver150Duration = new Column("iatOver150Duration").as("iat_over_150_duration");
        Column iatSum = new Column("iatSum").as("iat_sum");
        Column iatCount = new Column("iatCount").as("iat_count");
        Column avgIat = new Column("avgIat").as("avg_iat");
        Column maxIat = new Column("maxIat").as("max_iat");
        Column minIat = new Column("minIat").as("min_iat");
        Column ip50Duration = new Column("ip50Duration").as("ip_50_duration");
        Column ip60Duration = new Column("ip60Duration").as("ip_60_duration");
        Column ip70Duration = new Column("ip70Duration").as("ip_70_duration");
        Column ip80Duration = new Column("ip80Duration").as("ip_80_duration");
        Column ip90Duration = new Column("ip90Duration").as("ip_90_duration");
        Column ip100Duration = new Column("ip100Duration").as("ip_100_duration");
        Column ip110Duration = new Column("ip110Duration").as("ip_110_duration");
        Column ip120Duration = new Column("ip120Duration").as("ip_120_duration");
        Column ip130Duration = new Column("ip130Duration").as("ip_130_duration");
        Column ip140Duration = new Column("ip140Duration").as("ip_140_duration");
        Column ip150Duration = new Column("ip150Duration").as("ip_150_duration");
        Column ipOver150Duration = new Column("ipOver150Duration").as("ip_over_150_duration");
        Column ipSum = new Column("ipSum").as("ip_sum");
        Column ipCount = new Column("ipCount").as("ip_count");
        Column avgIp = new Column("avgIp").as("avg_ip");
        Column maxIp = new Column("maxIp").as("max_ip");
        Column minIp = new Column("minIp").as("min_ip");
        Column crossCities = new Column("crossCities").as("cross_cities");
        Column day = new Column("day").as("day");
        return new Column[]{uid,
                tid,
                mileage,
                fuelConsumption,
                avgFuelConsumption,
                workDuration,
                idleDuration,
                speed10Duration,
                speed20Duration,
                speed30Duration,
                speed40Duration,
                speed50Duration,
                speed60Duration,
                speed70Duration,
                speed80Duration,
                speed90Duration,
                speed100Duration,
                speed110Duration,
                speed120Duration,
                speedOver120Duration,
                avgSpeed,
                maxSpeed,
                maxUsefulSpeed,
                minUsefulSpeed,
                workWaterTemp50Duration,
                workWaterTemp70Duration,
                workWaterTemp80Duration,
                workWaterTemp85Duration,
                workWaterTemp90Duration,
                workWaterTemp95Duration,
                workWaterTemp100Duration,
                workWaterTemp105Duration,
                workWaterTemp110Duration,
                workWaterTemp115Duration,
                workWaterTemp120Duration,
                workWaterTemp125Duration,
                workWaterTemp130Duration,
                workWaterTemp135Duration,
                workWaterTemp140Duration,
                workWaterTemp145Duration,
                workWaterTemp150Duration,
                workWaterTempOver150Duration,
                idleWaterTemp50Duration,
                idleWaterTemp70Duration,
                idleWaterTemp80Duration,
                idleWaterTemp85Duration,
                idleWaterTemp90Duration,
                idleWaterTemp95Duration,
                idleWaterTemp100Duration,
                idleWaterTemp105Duration,
                idleWaterTemp110Duration,
                idleWaterTemp115Duration,
                idleWaterTemp120Duration,
                idleWaterTemp125Duration,
                idleWaterTemp130Duration,
                idleWaterTemp135Duration,
                idleWaterTemp140Duration,
                idleWaterTemp145Duration,
                idleWaterTemp150Duration,
                idleWaterTempOver150Duration,
                maxWorkWaterTemp,
                minWorkWaterTemp,
                workWaterTempSum,
                workWaterTempCount,
                avgWorkWaterTemp,
                maxIdleWaterTemp,
                minIdleWaterTemp,
                idleWaterTempSum,
                idleWaterTempCount,
                avgIdleWaterTemp,
                gasOpenPercent0Duration,
                gasOpenPercent10Duration,
                gasOpenPercent20Duration,
                gasOpenPercent30Duration,
                gasOpenPercent40Duration,
                gasOpenPercent50Duration,
                gasOpenPercent60Duration,
                gasOpenPercent70Duration,
                gasOpenPercent80Duration,
                gasOpenPercent90Duration,
                gasOpenPercent99Duration,
                gasOpenPercent100Duration,
                gasOpenPercentSum,
                gasOpenPercentCount,
                avgGasOpenPercent,
                torque0Duration,
                torque10Duration,
                torque20Duration,
                torque30Duration,
                torque40Duration,
                torque50Duration,
                torque60Duration,
                torque70Duration,
                torque80Duration,
                torque90Duration,
                torque99Duration,
                torque100Duration,
                maxTorque,
                minTorque,
                torqueSum,
                torqueCount,
                avgTorque,
                rpm650Duration,
                rpm800Duration,
                rpm1100Duration,
                rpm1400Duration,
                rpm1700Duration,
                rpm2000Duration,
                rpm2300Duration,
                rpm2600Duration,
                rpmOver2600Duration,
                ecoRpmDuration,
                ecoRpmPercent,
                noIdleRpmSum,
                noIdleRpmCount,
                noIdleAvgRpm,
                rpmSum,
                rpmCount,
                avgRpm,
                maxRpm,
                minRpm,
                iat50Duration,
                iat70Duration,
                iat80Duration,
                iat85Duration,
                iat90Duration,
                iat95Duration,
                iat100Duration,
                iat105Duration,
                iat110Duration,
                iat115Duration,
                iat120Duration,
                iat125Duration,
                iat130Duration,
                iat135Duration,
                iat140Duration,
                iat145Duration,
                iat150Duration,
                iatOver150Duration,
                iatSum,
                iatCount,
                avgIat,
                maxIat,
                minIat,
                ip50Duration,
                ip60Duration,
                ip70Duration,
                ip80Duration,
                ip90Duration,
                ip100Duration,
                ip110Duration,
                ip120Duration,
                ip130Duration,
                ip140Duration,
                ip150Duration,
                ipOver150Duration,
                ipSum,
                ipCount,
                avgIp,
                maxIp,
                minIp,
                crossCities,
                day};
    }


    public static VehicleBaseStatisticsDay parseObj(Row row) {
        VehicleBaseStatisticsDay statisticsDay = new VehicleBaseStatisticsDay();
        if (row == null) {
            return null;
        }
        statisticsDay.setUid(row.getAs("uid"));
        statisticsDay.setTid(row.getAs("tid"));
        statisticsDay.setDay(row.getAs("day"));
        statisticsDay.setMileage(row.getAs("mileage"));
        statisticsDay.setFuelConsumption(row.getAs("fuel_consumption"));
        statisticsDay.setAvgFuelConsumption(row.getAs("avg_fuel_consumption"));
        statisticsDay.setWorkDuration(row.getAs("work_duration"));
        statisticsDay.setIdleDuration(row.getAs("idle_duration"));
        statisticsDay.setSpeed10Duration(row.getAs("speed_10_duration"));
        statisticsDay.setSpeed20Duration(row.getAs("speed_20_duration"));
        statisticsDay.setSpeed30Duration(row.getAs("speed_30_duration"));
        statisticsDay.setSpeed40Duration(row.getAs("speed_40_duration"));
        statisticsDay.setSpeed50Duration(row.getAs("speed_50_duration"));
        statisticsDay.setSpeed60Duration(row.getAs("speed_60_duration"));
        statisticsDay.setSpeed70Duration(row.getAs("speed_70_duration"));
        statisticsDay.setSpeed80Duration(row.getAs("speed_80_duration"));
        statisticsDay.setSpeed90Duration(row.getAs("speed_90_duration"));
        statisticsDay.setSpeed100Duration(row.getAs("speed_100_duration"));
        statisticsDay.setSpeed110Duration(row.getAs("speed_110_duration"));
        statisticsDay.setSpeed120Duration(row.getAs("speed_120_duration"));
        statisticsDay.setSpeedOver120Duration(row.getAs("speed_over_120_duration"));
        statisticsDay.setAvgSpeed(row.getAs("avg_speed"));
        statisticsDay.setMaxSpeed(row.getAs("max_speed"));
        statisticsDay.setMaxUsefulSpeed(row.getAs("max_useful_speed"));
        statisticsDay.setMinUsefulSpeed(row.getAs("min_useful_speed"));
        statisticsDay.setWorkWaterTemp50Duration(row.getAs("work_water_temp_50_duration"));
        statisticsDay.setWorkWaterTemp70Duration(row.getAs("work_water_temp_70_duration"));
        statisticsDay.setWorkWaterTemp80Duration(row.getAs("work_water_temp_80_duration"));
        statisticsDay.setWorkWaterTemp85Duration(row.getAs("work_water_temp_85_duration"));
        statisticsDay.setWorkWaterTemp90Duration(row.getAs("work_water_temp_90_duration"));
        statisticsDay.setWorkWaterTemp95Duration(row.getAs("work_water_temp_95_duration"));
        statisticsDay.setWorkWaterTemp100Duration(row.getAs("work_water_temp_100_duration"));
        statisticsDay.setWorkWaterTemp105Duration(row.getAs("work_water_temp_105_duration"));
        statisticsDay.setWorkWaterTemp110Duration(row.getAs("work_water_temp_110_duration"));
        statisticsDay.setWorkWaterTemp115Duration(row.getAs("work_water_temp_115_duration"));
        statisticsDay.setWorkWaterTemp120Duration(row.getAs("work_water_temp_120_duration"));
        statisticsDay.setWorkWaterTemp125Duration(row.getAs("work_water_temp_125_duration"));
        statisticsDay.setWorkWaterTemp130Duration(row.getAs("work_water_temp_130_duration"));
        statisticsDay.setWorkWaterTemp135Duration(row.getAs("work_water_temp_135_duration"));
        statisticsDay.setWorkWaterTemp140Duration(row.getAs("work_water_temp_140_duration"));
        statisticsDay.setWorkWaterTemp145Duration(row.getAs("work_water_temp_145_duration"));
        statisticsDay.setWorkWaterTemp150Duration(row.getAs("work_water_temp_150_duration"));
        statisticsDay.setWorkWaterTempOver150Duration(row.getAs("work_water_temp_over_150_duration"));
        statisticsDay.setIdleWaterTemp50Duration(row.getAs("idle_water_temp_50_duration"));
        statisticsDay.setIdleWaterTemp70Duration(row.getAs("idle_water_temp_70_duration"));
        statisticsDay.setIdleWaterTemp80Duration(row.getAs("idle_water_temp_80_duration"));
        statisticsDay.setIdleWaterTemp85Duration(row.getAs("idle_water_temp_85_duration"));
        statisticsDay.setIdleWaterTemp90Duration(row.getAs("idle_water_temp_90_duration"));
        statisticsDay.setIdleWaterTemp95Duration(row.getAs("idle_water_temp_95_duration"));
        statisticsDay.setIdleWaterTemp100Duration(row.getAs("idle_water_temp_100_duration"));
        statisticsDay.setIdleWaterTemp105Duration(row.getAs("idle_water_temp_105_duration"));
        statisticsDay.setIdleWaterTemp110Duration(row.getAs("idle_water_temp_110_duration"));
        statisticsDay.setIdleWaterTemp115Duration(row.getAs("idle_water_temp_115_duration"));
        statisticsDay.setIdleWaterTemp120Duration(row.getAs("idle_water_temp_120_duration"));
        statisticsDay.setIdleWaterTemp125Duration(row.getAs("idle_water_temp_125_duration"));
        statisticsDay.setIdleWaterTemp130Duration(row.getAs("idle_water_temp_130_duration"));
        statisticsDay.setIdleWaterTemp135Duration(row.getAs("idle_water_temp_135_duration"));
        statisticsDay.setIdleWaterTemp140Duration(row.getAs("idle_water_temp_140_duration"));
        statisticsDay.setIdleWaterTemp145Duration(row.getAs("idle_water_temp_145_duration"));
        statisticsDay.setIdleWaterTemp150Duration(row.getAs("idle_water_temp_150_duration"));
        statisticsDay.setIdleWaterTempOver150Duration(row.getAs("idle_water_temp_over_150_duration"));
        statisticsDay.setMaxWorkWaterTemp(row.getAs("max_work_water_temp"));
        statisticsDay.setMinWorkWaterTemp(row.getAs("min_work_water_temp"));
        statisticsDay.setWorkWaterTempSum(row.getAs("work_water_temp_sum"));
        statisticsDay.setWorkWaterTempCount(row.getAs("work_water_temp_count"));
        statisticsDay.setAvgWorkWaterTemp(row.getAs("avg_work_water_temp"));
        statisticsDay.setMaxIdleWaterTemp(row.getAs("max_idle_water_temp"));
        statisticsDay.setMinIdleWaterTemp(row.getAs("min_idle_water_temp"));
        statisticsDay.setIdleWaterTempSum(row.getAs("idle_water_temp_sum"));
        statisticsDay.setIdleWaterTempCount(row.getAs("idle_water_temp_count"));
        statisticsDay.setAvgIdleWaterTemp(row.getAs("avg_idle_water_temp"));
        statisticsDay.setGasOpenPercent0Duration(row.getAs("gas_open_percent_0_duration"));
        statisticsDay.setGasOpenPercent10Duration(row.getAs("gas_open_percent_10_duration"));
        statisticsDay.setGasOpenPercent20Duration(row.getAs("gas_open_percent_20_duration"));
        statisticsDay.setGasOpenPercent30Duration(row.getAs("gas_open_percent_30_duration"));
        statisticsDay.setGasOpenPercent40Duration(row.getAs("gas_open_percent_40_duration"));
        statisticsDay.setGasOpenPercent50Duration(row.getAs("gas_open_percent_50_duration"));
        statisticsDay.setGasOpenPercent60Duration(row.getAs("gas_open_percent_60_duration"));
        statisticsDay.setGasOpenPercent70Duration(row.getAs("gas_open_percent_70_duration"));
        statisticsDay.setGasOpenPercent80Duration(row.getAs("gas_open_percent_80_duration"));
        statisticsDay.setGasOpenPercent90Duration(row.getAs("gas_open_percent_90_duration"));
        statisticsDay.setGasOpenPercent99Duration(row.getAs("gas_open_percent_99_duration"));
        statisticsDay.setGasOpenPercent100Duration(row.getAs("gas_open_percent_100_duration"));
        statisticsDay.setGasOpenPercentSum(row.getAs("gas_open_percent_sum"));
        statisticsDay.setGasOpenPercentCount(row.getAs("gas_open_percent_count"));
        statisticsDay.setAvgGasOpenPercent(row.getAs("avg_gas_open_percent"));
        statisticsDay.setTorque0Duration(row.getAs("torque_0_duration"));
        statisticsDay.setTorque10Duration(row.getAs("torque_10_duration"));
        statisticsDay.setTorque20Duration(row.getAs("torque_20_duration"));
        statisticsDay.setTorque30Duration(row.getAs("torque_30_duration"));
        statisticsDay.setTorque40Duration(row.getAs("torque_40_duration"));
        statisticsDay.setTorque50Duration(row.getAs("torque_50_duration"));
        statisticsDay.setTorque60Duration(row.getAs("torque_60_duration"));
        statisticsDay.setTorque70Duration(row.getAs("torque_70_duration"));
        statisticsDay.setTorque80Duration(row.getAs("torque_80_duration"));
        statisticsDay.setTorque90Duration(row.getAs("torque_90_duration"));
        statisticsDay.setTorque99Duration(row.getAs("torque_99_duration"));
        statisticsDay.setTorque100Duration(row.getAs("torque_100_duration"));
        statisticsDay.setMaxTorque(row.getAs("max_torque"));
        statisticsDay.setMinTorque(row.getAs("min_torque"));
        statisticsDay.setTorqueSum(row.getAs("torque_sum"));
        statisticsDay.setTorqueCount(row.getAs("torque_count"));
        statisticsDay.setAvgTorque(row.getAs("avg_torque"));
        statisticsDay.setRpm650Duration(row.getAs("rpm_650_duration"));
        statisticsDay.setRpm800Duration(row.getAs("rpm_800_duration"));
        statisticsDay.setRpm1100Duration(row.getAs("rpm_1100_duration"));
        statisticsDay.setRpm1400Duration(row.getAs("rpm_1400_duration"));
        statisticsDay.setRpm1700Duration(row.getAs("rpm_1700_duration"));
        statisticsDay.setRpm2000Duration(row.getAs("rpm_2000_duration"));
        statisticsDay.setRpm2300Duration(row.getAs("rpm_2300_duration"));
        statisticsDay.setRpm2600Duration(row.getAs("rpm_2600_duration"));
        statisticsDay.setRpmOver2600Duration(row.getAs("rpm_over_2600_duration"));
        statisticsDay.setEcoRpmDuration(row.getAs("eco_rpm_duration"));
        statisticsDay.setEcoRpmPercent(row.getAs("eco_rpm_percent"));
        statisticsDay.setNoIdleRpmSum(row.getAs("no_idle_rpm_sum"));
        statisticsDay.setNoIdleRpmCount(row.getAs("no_idle_rpm_count"));
        statisticsDay.setNoIdleAvgRpm(row.getAs("no_idle_avg_rpm"));
        statisticsDay.setRpmSum(row.getAs("rpm_sum"));
        statisticsDay.setRpmCount(row.getAs("rpm_count"));
        statisticsDay.setAvgRpm(row.getAs("avg_rpm"));
        statisticsDay.setMaxRpm(row.getAs("max_rpm"));
        statisticsDay.setMinRpm(row.getAs("min_rpm"));
        statisticsDay.setIat50Duration(row.getAs("iat_50_duration"));
        statisticsDay.setIat70Duration(row.getAs("iat_70_duration"));
        statisticsDay.setIat80Duration(row.getAs("iat_80_duration"));
        statisticsDay.setIat85Duration(row.getAs("iat_85_duration"));
        statisticsDay.setIat90Duration(row.getAs("iat_90_duration"));
        statisticsDay.setIat95Duration(row.getAs("iat_95_duration"));
        statisticsDay.setIat100Duration(row.getAs("iat_100_duration"));
        statisticsDay.setIat105Duration(row.getAs("iat_105_duration"));
        statisticsDay.setIat110Duration(row.getAs("iat_110_duration"));
        statisticsDay.setIat115Duration(row.getAs("iat_115_duration"));
        statisticsDay.setIat120Duration(row.getAs("iat_120_duration"));
        statisticsDay.setIat125Duration(row.getAs("iat_125_duration"));
        statisticsDay.setIat130Duration(row.getAs("iat_130_duration"));
        statisticsDay.setIat135Duration(row.getAs("iat_135_duration"));
        statisticsDay.setIat140Duration(row.getAs("iat_140_duration"));
        statisticsDay.setIat145Duration(row.getAs("iat_145_duration"));
        statisticsDay.setIat150Duration(row.getAs("iat_150_duration"));
        statisticsDay.setIatOver150Duration(row.getAs("iat_over_150_duration"));
        statisticsDay.setIatSum(row.getAs("iat_sum"));
        statisticsDay.setIatCount(row.getAs("iat_count"));
        statisticsDay.setAvgIat(row.getAs("avg_iat"));
        statisticsDay.setMaxIat(row.getAs("max_iat"));
        statisticsDay.setMinIat(row.getAs("min_iat"));
        statisticsDay.setIp50Duration(row.getAs("ip_50_duration"));
        statisticsDay.setIp60Duration(row.getAs("ip_60_duration"));
        statisticsDay.setIp70Duration(row.getAs("ip_70_duration"));
        statisticsDay.setIp80Duration(row.getAs("ip_80_duration"));
        statisticsDay.setIp90Duration(row.getAs("ip_90_duration"));
        statisticsDay.setIp100Duration(row.getAs("ip_100_duration"));
        statisticsDay.setIp110Duration(row.getAs("ip_110_duration"));
        statisticsDay.setIp120Duration(row.getAs("ip_120_duration"));
        statisticsDay.setIp130Duration(row.getAs("ip_130_duration"));
        statisticsDay.setIp140Duration(row.getAs("ip_140_duration"));
        statisticsDay.setIp150Duration(row.getAs("ip_150_duration"));
        statisticsDay.setIpOver150Duration(row.getAs("ip_over_150_duration"));
        statisticsDay.setIpSum(row.getAs("ip_sum"));
        statisticsDay.setIpCount(row.getAs("ip_count"));
        statisticsDay.setAvgIp(row.getAs("avg_ip"));
        statisticsDay.setMaxIp(row.getAs("max_ip"));
        statisticsDay.setMinIp(row.getAs("min_ip"));
        statisticsDay.setCrossCities(row.getAs("cross_cities"));

        return statisticsDay;
    }
}
